package com.ecplatform.item.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ecplatform.common.pojo.po.PageResult;
import com.ecplatform.item.mapper.ItemMapper;
import com.ecplatform.item.pojo.po.Item;
import com.ecplatform.item.pojo.vo.ItemVO;
import com.ecplatform.item.service.IItemService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@RequiredArgsConstructor
@Slf4j
public class ItemServiceImpl extends ServiceImpl<ItemMapper, Item> implements IItemService {

    private final ItemMapper itemMapper;

    @Override
    public PageResult<ItemVO> itemPageQuery(Integer pageNum, Integer pageSize) {
        log.info("开始分页查询，页码：{}，每页数量：{}", pageNum, pageSize);
        // 1.先构造分页查询条件
        PageHelper.startPage(pageNum, pageSize);

        // 2.执行分页查询
        List<ItemVO> itemList = itemMapper.itemPageQuery();

        // 3. 使用 PageInfo 获取分页信息
        PageInfo<ItemVO> pageInfo = new PageInfo<>(itemList);


        // 4. 构造分页结果对象
        PageResult<ItemVO> pageResult = new PageResult<>();
        pageResult.setData(pageInfo.getList());  // 设置当前页数据
        pageResult.setTotal(pageInfo.getTotal()); // 设置总记录数
        pageResult.setPageNum(pageInfo.getPageNum()); // 当前页码
        pageResult.setPageSize(pageInfo.getPageSize()); // 每页记录数

        return pageResult;
    }

    @Override
    public ItemVO selectItemById(Long id) {
        return itemMapper.selectItemById(id);
    }
}
